{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('../')\n",
    "\n",
    "import torch\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import Dataset\n",
    "\n",
    "from MyPlot import *\n",
    "from utils import force, fd_solve_nlinear\n",
    "from ConstCofFVM import UniformFVM, BlockCofProblem\n",
    "from BaseTester import BaseTester"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "class C2TestDs(Dataset):\n",
    "\tdef __init__(self, F, M, U, dtype, device):\n",
    "\t\tself.force = torch.from_numpy(F).to(dtype).to(device)\n",
    "\t\tself.mus = torch.from_numpy(M).to(dtype).to(device)\n",
    "\t\tself.refs = torch.from_numpy(U).to(dtype).to(device)\n",
    "\n",
    "\tdef __len__(self):\n",
    "\t\treturn self.mus.shape[0]\n",
    "\n",
    "\tdef __getitem__(self, index):\n",
    "\t\tf = self.force[index]\n",
    "\t\tmu = self.mus[index]\n",
    "\t\tu = self.refs[index]\n",
    "\n",
    "\t\tdata = torch.stack([f, mu])[None, ...]\n",
    "\t\treturn data, f, mu, u\n",
    "\t\n",
    "class nonlinearTester(BaseTester):\n",
    "\tdef __init__(self, **kwargs):\n",
    "\t\tsuper().__init__(**kwargs)\n",
    "\t\tself.mesh()\n",
    "\n",
    "\tdef init_test_ds(self, DataN, load_path=None):\n",
    "\t\tF = np.load(f\"{load_path}/{self.GridSize}/F.npy\")\n",
    "\t\tM = np.load(f\"{load_path}/{self.GridSize}/MU.npy\")\n",
    "\t\tU = np.load(f\"{load_path}/{self.GridSize}/U.npy\")\n",
    "\t\tprint(M.shape)\n",
    "\t\tself.ds = C2TestDs(F[:DataN], M[:DataN], U[:DataN], self.dtype, self.device)\n",
    "\n",
    "\tdef hard_encode(self, x, gd):\n",
    "\t\ty = F.pad(x, (1, 1, 1, 1), 'constant', value=gd)\n",
    "\t\treturn y\n",
    "\t\n",
    "\tdef test(self,exp_name, DataN, best_or_last, load_path):\n",
    "\t\tself.load_kwargs(exp_name)\n",
    "\t\tself.init_test_ds(DataN, load_path)\n",
    "\t\tself.load_ckpt(best_or_last, exp_name)\n",
    "\n",
    "\t\tdf = {\n",
    "\t\t\t'l2': []\n",
    "\t\t}\n",
    "\n",
    "\t\twith torch.no_grad():\n",
    "\t\t\tfor i, (data, force, mu, ans) in enumerate(self.ds):\n",
    "\t\t\t\tpre = self.net(data)\n",
    "\t\t\t\tpre = self.hard_encode(pre, gd=0)\n",
    "\t\t\t\tl2 = self.l2(pre, ans)\t\n",
    "\n",
    "\t\t\t\tmu = mu.mean().item()\n",
    "\t\t\t\t\n",
    "\t\t\t\tdf['l2'].append(l2.item())\n",
    "\n",
    "\t\t\t\t# if l2 < 1e-3:\n",
    "\t\tself.save_img(f\"{self.img_save_path}/{exp_name}/TestCase-{i}-{mu:.4e}\", pre, ans, force, mu)\n",
    "\t\t\n",
    "\t\tdf = pd.DataFrame(df)\n",
    "\t\tdf.to_csv(f\"{self.img_save_path}/{exp_name}/l2.csv\", index=False)\n",
    "\t\n",
    "\tdef save_img(self, path, pre, ans, force, mu):\n",
    "\t\tp = Path(path)\n",
    "\t\tif not p.is_dir():\n",
    "\t\t\tp.mkdir(parents=True)\n",
    "\t\tplt.rcParams['font.size'] = 18  # Default font size\n",
    "\n",
    "\n",
    "\t\tpre = pre.cpu().numpy().reshape(self.GridSize, self.GridSize)\n",
    "\t\tforce = force.cpu().numpy().reshape(self.GridSize, self.GridSize)\n",
    "\t\tans = ans.cpu().numpy().reshape(self.GridSize, self.GridSize)\n",
    "\t\t\n",
    "\t\tsave_surf(path, pre, self.xx, self.yy, 'surf_pre')\n",
    "\t\tsave_surf(path, ans, self.xx, self.yy, 'surf_ref')\n",
    "\t\tsave_ctf(path, pre, ans, self.xx, self.yy)\n",
    "\t\tsave_contour(path, pre, ans, self.xx, self.yy, levels=None)\n",
    "\t\tsave_img_force(path, force, 'force')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "GridSize = 128\n",
    "DataN = 2000\n",
    "\n",
    "nonlinear_tester = nonlinearTester(\n",
    "    GridSize=GridSize,\n",
    "    area=((0, 0), (1, 1)),\n",
    "    ckpt_save_path=f'model_save',\n",
    "    hyper_parameters_save_path = f'hyper_parameters', \n",
    "    img_save_path = f'./images', \n",
    "    device='cuda',\n",
    "    dtype=torch.float,\n",
    "\t)\n",
    "\n",
    "exp_name = 'Picard=5-ResBottleNeck-8-4#4#6#6#8-2-relu-layer-avg-zeros-GridSize:128-maxiter:10-trainN:10000-bs:5'\n",
    "best_or_last = 'last'\n",
    "nonlinear_tester.test(exp_name, DataN, best_or_last, './TestData')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# df = pd.read_csv('Ju-ResBottleNeck-2#2#4#6#6-2#2#4#6#6-2-layer-avg-replicate-GridSize:128-maxiter:5-trainN:10000-bs:5.csv')\n",
    "df = pd.read_csv('l2.csv')\n",
    "errors = df['l2'].values\n",
    "errors = errors.reshape(9, 9)\n",
    "# plt.imshow(errors)\n",
    "# plt.colorbar()\n",
    "\n",
    "from MyPlot import *\n",
    "\n",
    "save_img_force('./test_mu2.png', errors, name='$L_2$ Errors')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.00149580227428664\n"
     ]
    },
    {
     "data": {
      "image/png": "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AOSTi4uT/vnPbvrll0Hy93fXjh3XLvedNWu/0dEAwFCUfgAAFJF16yLVsOF/tWjREbm6Ounzzx/QokUDVbash9HRAACwez17hmrPnqd0//3BSkhI1+DB8zVkyHzFx6cZHQ0ADEHpBwBAIcvKsujtt9eqU6cfdPZsokJDy2jr1lF67rkWMplMRscDAMBhBAf7av36kXrnnfZycjJp5sz9atDgK61bF2l0NAAocpR+AAAUomPH4tS27fd6990NslqlJ55opJ07x6hx40CjowEA4JCcnc2aMKGDNm16QtWr++nMmQR16vSDXnttldLTs4yOBwBFhtIPAIBCcG2xju1q2PC/2ro1Wj4+bpo58xF9+21veXm5Gh0PAACH17JlJe3Z87SefLKxrFbpo4+2qFmzKdqx45zR0QCgSFD6AQBgY9HRCere/Uf99a/LlJqapU6dqmr//r9o0KD6RkcDAKBE8fJy1ZQpD2vBggEqW9ZDBw5cUsuW3+iNN1YrLY1ZfwAcG6UfAAA2YrVaNWPGPtWv/5VWrTqpUqWc9e9/P6BVq4YpJMTX6HgAAJRYffqE6dChZzRwYD1lZ1v1wQeb1bjx1/rttzNGRwOAQuNsdAAAABxBdHSCnn56sZYsOSZJat68oqZN66uwsLIGJwMAwL5FRETYbKxXX62qTp3K6e23t+vw4Vi1bv2dnn++hf7+947y9naz2XEAoDig9AMAoAAsFqu++WaXXn11lRIS0uXq6qS33mqn119vI2dnJtQDAJBfSUmXJUlDhw616bju7h7aunWPPv30oH74Ya8++2ybwsMP6d//flB9+4bJZDLZ9HgAYBRKPwAA8unEict68slftG5dpKRrNwz/9tuHVadOwE37RUVFKTY21mbHteWMBwAAiqu0tCRJUseOz6hmzYY2GTMm5rQWLJikrKxETZ3aR4MG1dMzzyzVyZNX1K/fXPXoUVP/938PqmpVP5scDwCMROkHAEAepadn6ZNPftN7721QamqWPDxc9I9/dNLYsffJyenm2X1RUVEKC6ut1NQUm+dISkqy+ZgAABQ3fn5BCgwMLZSxu3evoQMH/qJJkzbqww83a8mSY/r111N68812evnlVnJz41dmAPaL72AAAOTBmjUn9eyzS3XkSJwkqVOnqpoypZeqVbv9jIDY2Filpqaob99xCgiobJMMx45t09q13yktLc0m4wEAUJK5u7vo3Xc7aciQBnrmmSVauzZS48f/qm+/3a1PPumm3r1rcckvALtE6QcAQC6cP5+ol19eqVmzDkiSypf31KefdtegQfVy9YtAQEBlm81SiI2Nssk4AADgf8LCymrNmuGaOXO/Xn11lU6evKK+feeoU6eq+uyz7qpfv7zREQEgT7jDOAAAd3HtUt4tCgv7QrNmHZDZbNLYsffp8OG/avDg+vzlHwAAB2IymTRkSAMdPTpW48e3lZubk3799ZQaNfpaf/nLYl26lGx0RADINUo/AABuw2q1av78CNWt+6VeeeXayrz33Rek338frX//+0GVLl3K6IgAAKCQeHm56r33Oiki4ln1719HFotV//3vTlWv/m9NnLhOiYnpRkcEgHui9AMA4E927Din9u2nql+/uTpx4ooqVPDSt98+rC1bnlCTJoFGxwMAAEWkalU/zZ3bX+vXj1SzZhWVlJShCRPWq3r1f+v//m+bMjKyjY4IAHdE6QcAwB9OnLisYcMWqHnzKdq4MUru7s566612OnZsrJ54ovEtK/MCAICSoV27ytq+/UnNnfuoatb0V0xMip57brnCwv6j6dP3KivLYnREALgFC3kAAEq8qKirevfd9fr++z3KzrZKknr0qKRnnglThQruOnr0QL7HjoiIsFVMAABgI/n9+Vy9ujR9eistWhSlr78+qlOn4jV8+EK9886vmjixkwYNqi9nZ/5ICKB4oPQDAJRY588natKkjZo8eVfO5Tlm8wlZLKu1ZMl5LVliu2MlJSXZbjAAAJAvSUmXJUlDhw61wWguklpIul+nTknDhy/U3/++QW++2VZDhjSg/ANgOEo/AECJc+rUFX388RZ9990epaVlSZI6dKiiYcOCNGrUBPXtO04BAZVtcqxjx7Zp7drvlJaWZpPxAABA/qWlXfsjXMeOz6hmzYY2GfPcudNavHi1fH0f1PHjlzVy5M96990NeuWV+zViREO5u7vY5DgAkFeUfgCAEmPfvov68MPNmjPnQM5lvC1bVtI//tFJnTpV1a5duyRJAQGVFRgYapNjxsZG2WQcAABgO35+QTb7WX/NJn3yyRjt2+emadNO6MSJK/rLX5Zo/PhVGjiwqvr3ryIfH9c8jVi2bFmFhITYMCOAkobSDwDg0KxWq3799ZQ+/XSrli49lvN4t27V9frrrdWhQxWZTCYDEwIAAHt2/ZLhJ58c/scjLpKaSGqly5dL68svj+jLL/dL2ilpq6SruRrX3d1Dhw9HUPwByDdKPwCAQ0pMTNf06fv0n/9sV0RErCTJbDbp0Ufr6LXXWqtJk0CDEwIAAEdwp0uGLRarTpxI1d69ybp8WZJayWRqpcqVS6lePQ8FBrre8Q+PMTGntWDBJMXGxlL6Acg3Sj8AgEM5fDhWX331u6ZO3auEhHRJkpeXq0aMaKgXXmipGjX8DU4IAAAc0e0uGQ4Kktq2ter48cv67bdonToVr8jINEVGpql8eU/dd1+Q6tcvJxcXJ4NSA3BklH4AALuXmJiuuXMP6ttvd+u336JzHg8NLaO//rW5RoxoJB8fNwMTAgCAkspkMqlmzTKqWbOMLl1K1vbtZ7V370VdvJisX345qlWrTqpBg/Jq2jRQ5cp5Gh0XgAOh9AMA2CWLxarNm6P0/fd7NHfuQSUnZ0qSnJxMeuihmnr22ebq2rW6zGbu1wcAAIqHcuU81bNnqDp3rqrduy/o99/PKT4+Tdu3n9X27WcVHOyjJk0CVaaM1eioABwApR8AwG5YrVbt3XtRM2fu1+zZB3TmTELOttDQMnriiUYaPryhAgO9DUwJAABwd+7uLrr//mC1bFlJJ09e0c6d53XkSKzOnEnQmTMJcnU1Seql3bvj1LixlUXHAOQLpR8AoFizWq06dChG8+ZFaNasAzp8ODZnm7e3qx59tI5GjWqs++8P5g0xAACwK2azSTVq+KtGDX8lJqZrz54L2rXrguLj0yQ11ZNPbtH770do+PCGGjasgapW9TM6MgA7QukHALhJVFSUYmNj771jHqSnp8vNLff31MvOtmr//itat+6C1q27oDNnknO2ubqa1bZteXXvXlG9e9dRaGg1m2YFAAAwgre3m9q2raw2bUK0a9cBLV78q9zdm+rEiSt65511eueddWrVqpIGDqyn/v3rcGUDgHui9AMA5IiKilJYWG2lpqbYeGSTpHvdm8ZZUlVJYZJqSfK6YVuWpFOSDigj47DWrEnXmjXSO+946PDhCIWEhNg4LwAAgDFMJpMqVnSTtFCrVr2hkyfdNG3aPq1Zc1K//Rat336L1gsvLFeHDlU0YEBdPfJIbQUEsAAIgFtR+gEAcsTGxio1NUV9+45TQEBlm4x57Ng2rV37nTp2fEY1aza8aVt6ukVRUemKjEzTmTPpysr6XzHo6mpSSIibqlQppUqV3OTqGiypXc72mJjTWrBgkmJjYyn9AACAQ3J3d9awYQ01bFhDnTuXqPDwg5o9+6C2bo3W2rWRWrs2Us88s1Rt24aob98w9e1bWyEhvkbHBlBMUPoBAG4REFBZgYGhNhkrNjZKkuTnF6QKFWrq/PkkHT9+WcePX1Z0dIKsN0wA9PZ2VVhYWYWFlVXlyr5ycjLbJAMAAIC9q1jRW88/31LPP99SkZHxmjv3oObMOahdu85r/frTWr/+tF54YYWaNAlU375h6tGjpho1qsA9j4ESjNIPAFCo0tMlqYF+/z1Ly5f/ppSUzJu2BwR45BR9gYFevDEFAAC4hypVSutvf2utv/2ttSIj47Vw4WEtWHBYmzZFadeu89q167zeemutKlb01kMP1dBDD9VUly7V5O2d+3ssA7B/lH4AAJuyWKyKjk7Q8eOXdeLEFZ075yzpEZ05Y5WUKVdXJ1WrVlo1avirenV/lS5dyujIAAAAdqtKldJ64YWWeuGFlrp0KVm//HJEv/xyVKtXn9S5c4n65pvd+uab3XJxMatp03Jq0sRXLVuWU1iYr5yc7v3HVovFIknau3evzOZbr8IoW7Yst1oBiilKPwBAgSUkpOvEics5RV96evYNW02Szis0NEitWtVXcLAPl+0CAAAUgnLlPDVqVBONGtVE6elZWr/+tJYsOaolS47pxIkr2rr1grZuvaAvvzwiKVXSSV1bLC1SUuxtx3R3d9esWbPUrl07paam3mY7C6sBxRWlHwAgz7KyLDpz5uof9+a7okuXkm/aXqqUs6pX91ONGv7KyDigZcu+Vr16/1CVKqWNCQwAAFDCuLk5q1u36urWrbo+++wB/fzzRvXt+4oCAx9UbKyTMjPdJdX940NydzerQgVXVazoqgoVXOXn5yyz2SRn52uzAR9//PObFl2TWFgNKO4o/QAAuXLlSqqOH7+iEycu6+TJK8rMtNy0PSjIWzVq+KtGDX9VrOgts/naG8T9+w8Uaq6IiIhiORYAAEBxYTKZFBLiJel39er1pMqXr6mzZxN08mS8Tp+O15kzCUpNtejUqTSdOpUmSXJxMatiRW9VquQtb+94ubsHy8vLvm/LEhUVpdjY289ozC8ub0ZxRukHALitjIxsnTp1RSdOXPu4fPnmyzk8PV1y7stXvbqfPDxcijRfUtJlSdLQoUMLYewkm48JAABQXJjNJgUH+yo42FdSZWVlWXTuXKIiI6+VgNHRicrIyNbp01d1+vRVbd4sSZHy8XFTUJC3goJ8VKmSt0wmyz2OVHxERUUpLKy2UlNTbDoulzejOKP0AwBIurYAx+HDVyW10S+/xOnixQuyWP53CYfJJAUH++TM5qtQwdiVdtPSrhVzHTs+o5o1G9pkzGPHtmnt2u+UlpZmk/EAAAAKoqiuaHB2NiskxFchIddKQIvFqtjYFEVHJ+jcuQTFxcXr9Ok0JSSkKyEhXRER12bLXXsr+Kxee22H2rVLVL165VS/fnlVq+aXc9VHcREbG6vU1BT17TtOAQGVbTImlzejuKP0A4AS7OLFJK1ceUIrVpzQqlUn/7g3XxedP58hSSpdulTOvfmqVCmtUqWK348NP78gBQaG2mSs2Ngom4wDAABQEEZf0WA2m1SunKfKlfNUs2YV1LBhgrZv99TZs0k6ezZBZ88mKjo6QYmJGZICtHr1ea1efT7n+R4eLqpTJ0D165f7owgsp7p1yykw0Ng/GktSQEBlm713BIq74vfbGwCg0KSnZ2nLljNaseJa0bdnz4Wbtru7Oyk19ZBat26uxo1ryd/f3fA3ZgAAACVNcbyiwc3NSVWqlL5pYbbjxyM0Y8Ynev759xUf76L9+y/p0KEYpaRkaseOc9qx49xNY3h4uKh6dT9Vr+6vGjWu//ParWJCQnzl5GQuyEsE8CeUfgDgwKxWq44du6wVK45rxYoTWrcuUsnJmTft07hxBXXvXl3du9eQu3usWrZ8S3XrdlCZMh4GpQYAAIBU/K9o8PR0knRCw4dXV5MmTSRJ2dkWnThxRfv3X9T+/Zd04P/bu/e4KKv8D+CfYbgNM9yRm4qggoiS11pbLTNTUzN1y9XU0jRzs5+ZbbmpW8a21la623bbVte87Fpma3bxfknNa5t4Q0VFQBAEhAEGZobbMOf3xzhPjAwwAwww+Hm/Xs+LYZ5zzpwHv4xnvpznnPM3kZR0E1evFkKvr0JSkun727m5uSAy0k+6w6RzZx906uRza+1B02MPj7aZwmjuzeC4OQg1l7b5G0NERI1WVFSGgwevSbP5rl0rtjgfEqLEyJHdMGpUN4wY0Q3BwUrp3KlThS3cWyIiIiJqT+RyF8TEBCImJhCPPRYnPW/aGKQYV68WIjW1yOJrWloRKiurkZJSiJSUusejwcHKGsnAXxKC5q/h4d5wc5O3xGUCcNxt2NwchJoLk35ERE5Op6vEkSOZ2L8/HT/8kI5Tp3Igftl/A+7ucgwZEoFRo7ph5MhuuOuukDa3sDIRERERtW/u7nJERwciOjqw1rnqaiOys0uRmlqIq1cLkZmpwfXrJbcO0+PycgNu3tTh5k0dEhNzrLyCaWOR0FAVOnc2bUrSubOP9FWvLwaggqg5UG4iR9yGzc1BqDkx6UdE5GQqKgw4cSILP/yQjh9+uIYTJ7JgMBgtyvToESjN5nvggUgole6t1FsiIiIiau+a6/ZWX19gwAAZBgzwQ1BQdynpJYRAYWGZRRLQ/DUrq0T6WllZjZwcLXJytPjf/7KtvMLLWLMmF76+xfDx8YCvrycCAjwREOCFgABPBAZ6NWrjuua8DZuoOTHpR0TUxun1Vfj552wcPXodBw5cw5EjmSgvN1iU6dLFF8OHR+HBB6MwbFgUwsO9W6m3RERERHSncOQuwzVvcZXJZAgM9EJgoBf69g21Wt5oFMjP11kkBM0zBjMzNUhLK8DNm2UwGmUoKipHUVE5AE2tdry83BAQoJCOwMBfvrbVNQWJ6sKIJSJqIZmZmSgoKGiwXEFBOc6eLcTZs0U4c6YQly5pUF1teRtCYKAH7r47CMOGRWLSpAGIivJ3VLeJiIiIiKxyxO2tQONucXVxkSEkRIWQEBUGDgyvdf7UqVMYMOBuPPHEh/D07AiNphzFxeUoLCxHYWEZCgvLoNVWQq+vgl5fhaysklpt+Pl5IjhYieBgJUJClCgpAQAum0NtF5N+REQtIDMzE7GxPVFWpr/tjAxAEICIW0dnAAFWWigBcB1ABoA0qNUF2LULOHTIC1OmJANg0o+IiIiIWofz3N5qhLe3K8LCfAH41jpbWVmNwsIyqNVlUiKwZkKwuNiUKLxyRX2rhhuAxTh0yIDs7KsID/dGeLg3AgMVkMmYDKTWx6QfEVELKCgoQFlZGYYPXwKjsQPy8w0oKKiCWl2FqqraiwkHBLgiNNQdISHuCA11g0oVCpmsh0UZLvJLRERERNR83N3lCA1VITRUVetcWVkVbt7UIS/PdNy8qUNOjgbV1e5QqwXU6l/WEPT0dJV2GY6I8EXHji27qzCRGZN+RNSibL3F1R5BQUFtLulVXW3E5ctqJCbeQGJiDg4dSgHwKvbvd8fta4e4ubmgY0cfaXexTp18GrWAMBEREREROYZC4YYuXfzQpYuf9Ny5c/uwdes/MXDgAri4hCInpxQ5OVqUlxuQklKIlBTTmocuLjKEhakQFeWHqCh/dO7swyQgtQh+qiSiFlP3La5NU3OR35YmhEBOjhbnz9+0OC5cyIdeX3VbaQ+4usoQFuZ961AhPNwbQUFecHHh9H8iIiIiImdiuoO3ABERLoiP7w7A9Mf/vDwdMjM1yMoybSJSWlqJ7OxSZGeX4siR65DLZejUyQeRkX6Ijg5AeLg3bwcmh2DSj4hajOkWVz0mTlyCDh26NEubLXWLqxACBQV6nDuXgx078rFjx05cvKjG+fM3UVxcbrWOUumGvn1DMWBAGAIDK7Fs2RzMnPkmOnbsYbU8ERERERE5N7ncRVrbDzB9jtBoKnDtWjGuXStGenoxSkoqkJGhQUaGBocOZUCpdEP37gGIjg6ESmVs5Sug9oRJPyJqcR06dGmzC/1WVlbj6tVCHDlyCUlJN5CRocO1a1pkZGhRUlJz5t4va3bI5TJERCjRrZu3dHTt6o2ICBXkctNf7JKTkwHkO2RGn6ntttcWEREREVFTtIdxrkwmg5+fJ/r2DUXfvqEQQqCoqBzp6UVITTUdOl0Vzp7Nw9mzebdmD87Ahg2pUCg6IzY2iLMAqdGY9COiO44QAjdv6nD5shqXLxfg0qWCW4/VSE8vQnV17Y01btWETKbBwIEROH16NwyGGwBuorq6AOnp1UhPB/btq/+1tVpts12HVmtaI2T69OnN1uYvbTdfP4mIiIiI7NGex7kymQwBAQoEBCgwYEA4qquNyMzU4MqVQqSkqKFWlwGIwt//fhF///tFREX5YezYaDz6aA888EAk1wIkuzDpR0TtlsFgRGpqIS5dKkBysim5Zz40moo66ymVrtDpMtC5cyhCQnzh5+cKX1/T4enZESNHBmPPnsdgMNSVHKwtJeUnHDjwGcrLrd8K3Bjl5aYBy7Bh8xAd3adZ2nREP4mIiIiI7HEnjXPlchdERfkjKsofo0Z1w+XLF7Fp0wYMGvQUTp0qRHp6MT766Gd89NHPCAhQYPz4Hnj88TgMHx4FDw+mdKh+jBAiagfckZxcjIsXz0kJvuTkfFy9WoiqKutrYshkQGSkH3r0CEKPHoGIjTV97dEjCDk5VzBw4ECMHv3PWrchu7gIACUICekOo9H2afYFBZlNucB6+ft3bLbbpR3ZTyIiIiIie9yJ41wfH1cAP+Hjjz9BTExv7N+fhm3bruDbby8jP1+PtWvPYO3aM/Dx8cCjj/bAY4/1xKhR3aBQuLV216kNYtKPiJyGTleJ/Hw9Cgr0yM/XQ63WIzdXA2AJpk8/bLWOl5cbYmODEBsbhJ49g6TkXvfuAXX+x5ibyzUziIiIiIiodalU7hg/Phbjx8fi00+NOHw4E1u2XMSWLcnIydHiP/85h//85xyUSjeMHRuDxx/vidGjo6FSubd216mNYNKPiNqcqqpq3Lypszjy8nTQ6arqrOPjI0f37r6IivJGZKQKkZEqREWpEBKiuG3zjHJUVWUjOTm7zra4mQUREREREbUma59JfHyAp58OxYwZIUhKKsL+/TnYvz8Hubll2Lz5AjZvvgAPDxcMHhyMhx4Kx333hcDLy5T2CQoKQkREREtfBrUyJv2IqNWYd67KzdUiL++XBF9hYVmddfz9PREU5CUd5eXp2Lv3zygpKcOpU8CpU83Xv9Ze5JeIiIiIiO4sjdvEJBxAHIA4VFQE4IcfcvHDD7kAqgCkALgIT8/ruHz5HBN/dxgm/YioRVRUGHDpkgZAPxw9qkFp6Wnk5upQWVlttbxS6YbgYCWCg5UICTF97dBBCXd3y92qkpIuACi7Ixb5JSIiIiKi9q0pm5gIIaBWG5CWVob09HJoNIA5GVheXoWnn96JOXMG45FHYngL8B2CST8ianYaTTnOns3D6dM5OHPG9PXixfxbm2qMx4ULeqmsq6tLreReSIgSSqV9/wndiYv8EhERERFR+9TYzzfh4UB8vCkBmJenw4UL+UhKyoZGg1szALfA09MVo0d3x29/24sJwHaOST8iajQhBG7cKMWZM7k4fdp0nDmTi7S0IqvlfXzcUFJyGfHx8ejevTNCQ1UICvK6bc09IiIiIiIiagqZTIbQUBVCQ1Xo2bMSq1e/gVmzVuDw4UKkpBRi69ZL2Lr1EhOA7RyTfkRkk+pqIy5fVuPMmVzpOH06FwUFeqvlIyJ80a9fKPr2DZW+FhSkYuDApbj33n8iLCykha+AiIiIiIjoziOTyQDk4sEHgXnzfo0rV0qwb98N7NuXg8xMnZQA9PBwwa9/HYwHHgjF4MHB8Pf3qLddbg7S9jHpR0S16HSVSEq6eSuxZ7pFNykpD2Vlhlpl5XIZYmOD0K9fGPr2DUG/fmHo0ycEgYFetcqq1ZzRR0RERERE1JLq3xwkFKZ1/3qhoiIQBw7k4sCBXABGANcBXL51qGvVVCi8cOlSMhN/bRiTfkR3MPPtuefP37w1e8+0/t6VK2oIUbu8UumGPn1C0bdvyK0ZfGHo1asDFAq3lu88ERERERERNciWzUGEECgsNCA9vRwZGeVQqw0Autw6RsLXV44uXTzRpYsnQkLcoFZnYuvWt1BQUMCkXxvGpB/RHSI/X4fz52/i/PmbuHAhX/paXGx9h9oOHRSIjlahRw9fxMT4okcPH3TurLxt/b1cJCfn2tyH5OTkJl4FERERERERNUZDm4OEhwO9e5seFxeX48oVNa5cUSM9vRgaTTXOndPh3DkdFApXdOrkCyAOGk1ly3SeGoVJP6J2xGgUyMoqQUqK6c05OblASvTl51tfe08ul6F79wD07RsqHUFBBtx//wAcO6bHsWPN30+tVtv8jRIREREREVGz8PPzxD33dMQ993RERYUBV68W4cqVAqSkFKKszICUFAOA3+Khh3Zj4MDzGDmyK0aM6IZBgzrB3V3e2t2nW5j0I3IyQgjk5+ulv7qYEnyFuHJFjatXC1FeXnvdPQCQyYCoKH/07h2M3r07oFevYPTuHYwePQLh4WH5VnDq1CmUlekxceISdOjQpdn6npLyEw4c+Azl5dZnFxIREREREVHb4uHhil69OqBXrw4wGgWuX9cgMfEqkpLSYTQG43//y8b//peNP//5MFQqdwwe3BlDh3bB0KGRGDgwnEnAVuR0Sb/S0lKsXLkSW7ZsQXp6OuRyOWJiYjBlyhTMnz8f7u6N3146Ly8P7777LrZt24bMzEwoFAr06tULM2bMwOzZs2/teFO31NRUvPvuu9izZw9ycnLg4+ODfv364dlnn8Vjjz3W6H5R+5KZmYmCgoI6z5vWUqhETo4eubllyMkxHbm5euTklCE7Ww+dznpiDwBcXV3QrZs/oqMD0aNHIOLjg9GrVzB69gyCUmnf70eHDl3qnf5tr4KCzGZri4iIiIiIiFqWi4sMXbr4wd3dB0lJn2DnziPIzVVi79407N2bivx8PXbvTsXu3akAAC8vN/z6150xeHBnDBrUCb/6VUf4+yta+SruHE6V9MvIyMADDzyAa9euAQC8vLxQUVGBkydP4uTJk9i4cSP2798Pf39/u9tOTEzEqFGjoFabdqRRqVQoLS3FkSNHcOTIEXz11Vf47rvv4OFhfcvqHTt2YNKkSdDrTbdQ+vj4QK1WY8+ePdizZw+efvpprFmzpsHEIbVvV66k4a67hqCiwhWAqsbhDcC3xtHQxhgCgAamHZTUcHMrxerVf8HgwbGIjPSDq6uL4y6CiIiIiIiICEBwsAIPP9wXM2f2hdEokJSUh0OHMnDoUAZ+/DEDBQV67NuXhn370qQ6PXoEYtCgTrjnno7o1y8Ud90VYvcEFbKN0yT9qqurMW7cOFy7dg1hYWHYsGEDHnroIRiNRnz11VeYM2cOTp8+jWnTpmHHjh12ta3RaPDII49ArVYjNjYW//73vzFw4EBUVlZi9erVWLhwIfbs2YOFCxfik08+qVU/PT0dv/3tb6HX6zF48GB89tlniImJgVarxXvvvYc//elPWLt2LWJjY7Fo0aLm+pE4vbNnz8LFpfmSU0FBQS26a5AQAlptJdTqMqjVeulrYWGZ9Dg/X4+cHC1yc7XIySmFRlMBYK5N7Xt5ucDbWw6VynTUfOzj4wpX13AAQH5+BrZufQuurukoKfHEuXNNvzZuuEFERERERET2cHGRoU+fUPTpE4oXXvgVjEaB5OR8HDqUgRMnsnDiRBZSUgpx+bIaly+rsX79Walejx6B6NcvDH37hqB372DExXVA586+t20kSfZymqTfunXrkJSUBADYsmUL7r33XgCAi4sLJk+eDKPRiKlTp2Lnzp3Yv38/hg8fbnPbK1asQG5uLhQKBXbs2IGoqCgAgLu7O55//nmUlJRgyZIlWLVqFV588UXExFje7vj6669Dp9MhNDQU27Ztg5+fHwDTbMGEhATk5uZi1apVWL58OebMmdOomYjtSVZWFgDg/vvvR1lZWbO1q1B44dKl5AYTf0ajgF5fBb2+Cjpd5a2vVSgtrUBJSQU0mgpoNOXSY8uv5dBoKm4l9vSoqjI2oqdV8Pb2hK+vEt7e7lAq3aFSucPX1wO+vh7w8/OEj48H5HLbEqJabSEAYPr06Y3oS0Ntc8MNIiIiIiIisp+Liwy9epmWm5o3724AQEGBHj/9ZEoAJibm4NSpHOTl6ZCcXIDk5AJ8/nmSVF+pdENcXAfExXVATEwguncPQPfuAejWzR++vp6tdVlOxWmSfuvXrwcADBs2TEr41TRlyhQsXboU6enp2LBhg11Jvw0bNkhtmBN+Nc2fPx9vvfUWtFotNm7ciISEBOmcTqfDli1bAADPPfeclPCrafHixVi1ahVKSkrwzTff4Omnn7a5b+2R+RbqceN+Dz+/zrXOG40CBoPlUVVV//clJRpcvXoK8+bthaenN3S6X5J6NR/r9VUoK6t7PbzG8PCQIzDQC4GBihpfTY+DgrwQFqZCaKgKYWHeyMtLxQMPDMITT/yz2dbKKy83JeaGDZuH6Og+zdImN9wgIiIiIiKi5hYU5IWxY2Mwduwvn4dzckpx+nQuTp/OwdmzeUhOLsDlywXQ6arw88838PPPN6y2Exnph44dvdGpk0+Nrz7S97xl2EmSfnq9HkePHgUAjB492moZmUyGhx9+GP/4xz+wZ88em9u+fPkyMjMz621bpVLhvvvuw86dO7Fnzx6LpN+RI0ek2Wp11Y+MjETPnj2RnJwsre93p/rppyy8+upJaDR65OZ6QYhSVFVVo6rKiKqqalRWVqO6WjSiZTmAu7F9e5ZdtTw8XKBQuMLTUw6l0hUqleutr25QKl2hUMjg4+MJleqX51QqN/j6usHX1x2+vm5QKBr6NaoCUAS9vghZWVcbcW228ffv2GyJRG64QURERERERC0hLMwbYWHeGDMmWtr4sqrKiKwsHdLTtUhLK8X16zpcv65DVpYeanUFCgr0KCjQ4+TJuttVqVwREqJAhw4e6N3bA2PGtNw1tRVOkfRLTk6G0Wi6jbJ37951ljOfy83NRWFhIQICAhps+/z587Xq19X2zp07cfHixTrr9+rVq976ycnJuHDhQoN9as/y8/U4eDCvxjOV9ZZ3c3OBu7scbm7yGo9dbn0vh7u76bFWm4fk5H0wJdjMR2Udj83fG1BRIVBRUV8PZDBtmtG8eNssERERERER0S8yMzMRG9sTZWX6Bkq6AwiAaRNMH5g2xvS57XCHVmuAVluK1NRS+PoGIisry+rdne2ZUyT9btz4ZSpnx44d6yxX89yNGzdsSvrZ23ZJSQm0Wi1UKpVFfX9/f3h5eTVYv+br3YnuuisEr77aG2VlJbh0qRRBQZ2kJJ5lQs8Frq4uNu92nJSUgeTkQw65xZW3zRIRERERERE5VkFBAcrK9Jg4cQk6dOjS6HaEMC0JptNVQ6czIj8/H/ff7w+1Ws2kX1tUWloqPa4vsVbzXM06jmjbnPQz16+vbs3zDfWroqICFTWmnmk0GgBAYWEhqqqq6q3rDJRKYMQIf+TlVeLGjctQKEzPCwFUVKCBWXd102iy4enpCReXahiNzZNQc3ExOqxNjSYT2dmqZmnTfO1tvU1HtdvSbcrlMkRHB+HGjUy7bkVvD9feltp0VLvtvc364rct9bM9tOmodu/kNouLc6DX61FcnIns7PrHXbZylmt3VLts884cPziqXbbZftts6fGDo9plm83bplqdBU9PTyQmJqKkpKRZ2kxJSYGnpyeAqiZ/Bnd1BXx9TYdSWYmoKBeUlJRIeww4M3NeSQgb/j8RTmDjxo0CpnssRUpKSp3l9uzZI5U7duyYTW0vX75cqlNVVVVnuVWrVknlbty4IT0/Z84cAUB07Nix3tdZsmSJACDc3d3rLbds2TLpdXjw4MGDBw8ePHjw4MGDBw8ePHjwuP24fv16gzkvp5jp5+3tLT3W6+u+t7vmuZp17Gnbx8fHrrbNj+vrV83zDfVr8eLFeOmll6TvjUYjCgsLERgYaPOtrm1dSUkJOnfujOvXr9f58yZqqxi/5MwYv+TMGL/kzBi/5MwYv+Ts2lsMCyFQWlqK8PDwBss6RdKv5oVkZ2fjrrvuslouOzvbah172q4rAMxt+/j4SLf21qxfVFQEvV5f522+5voN9cvDwwMeHh4Wz/n5+dV/EU7Kx8enXfzC0Z2J8UvOjPFLzozxS86M8UvOjPFLzq49xbCvr69N5Vwc3I9m0bNnT7i4mLpac7fc25nPhYaG2rSJB2C5Y68tbcfFxdVZv76dec3169vhl4iIiIiIiIiIqDk4RdLPy8sLgwcPBgDs2rXLahkhBHbv3g0AGDlypM1t9+jRAxEREfW2rdPpcPjwYattDxkyBIpbu1HUVT8jIwPJycl2942IiIiIiIiIiKgxnCLpBwAzZswAABw4cAA//fRTrfNfffUV0tLSAABPPfWUXW2by2/atAnXrl2rdf7jjz+GVquFXC7HtGnTLM4plUo89thjAIB//OMf0m67Nb3zzjsATOv5TZgwwa6+tUceHh5YtmxZrduYiZwB45ecGeOXnBnjl5wZ45ecGeOXnN2dHMMyIWzZ47f1GQwG9O/fH0lJSejYsSPWr1+P4cOHw2g0YsuWLXjmmWdQUlKC0aNHY8eOHRZ133jjDSQkJAAA0tPTERkZaXFeo9EgNjYWubm5iIuLw4YNGzBgwABUVlZizZo1ePHFF1FZWYnnnnsOn3zySa2+paenIz4+HjqdDvfddx/WrFmD6Oho6HQ6rFy5Em+88QaEEHjnnXewaNEih/2MiIiIiIiIiIiIACdK+gHAtWvXMGzYMGk2npeXF4xGI8rLywEA/fr1w/79++Hv729Rr6GkHwAkJiZi1KhRUKvVAEyz8srLy1FVVQXAdFvud999V2dmeMeOHZg0aZK0S6+vry+0Wi2qq6sBADNnzsRnn33WbnbgJSIiIiIiIiKitstpbu8FgMjISJw7dw6vv/46evfuDZlMBjc3NwwYMAArVqzAiRMnaiX8bDVgwABcuHABCxcuRHR0NKqqqqBUKjFkyBCsXr0aO3furHcq6JgxY3Du3DnMmTMHkZGRKCsrg5+fH0aMGIH//ve/WLt2LRN+RERERERERETUIpxqph8RERERERERERE1zKlm+hEREREREREREVHDmPQjq06dOoWEhAQ8+uijiI2NRWBgINzc3BAYGIjBgwdj+fLlKCwsbFTb165dg0wms/l4+umnrbZjMBiwZs0ajBgxAsHBwXBzc4O3tzfi4+OxYMECpKam2tSf06dP47nnnkOPHj2gUqng4+ODmJgYTJkyBV988UWjrpFalyPjFzCtE2pL7F69etVq/dzcXGzevBmvvvoqRowYgcDAQKnOwYMH7brO6dOno1OnTvDw8EBYWBgmTpyIH374odHXRq3P0fGbnZ2NTz75BJMmTUL37t2hUCigUCgQFRWFJ554osH4+f777/Hyyy9j2LBh6NatG3x8fODu7o7w8HCMHj0aa9euhcFgqLP+xo0b8cILL2DIkCGIjIyEUqmEp6cnIiIiMHHiRGzZsqXR10Ztg1qtxtq1azF9+nTExcVBqVTCw8MDnTp1woQJE7B169ZmeZ3t27dj/PjxCA0Nhbu7O0JDQzF27Fh8++239dabOXOmTe/h1uJ43bp1do1h1q9f3yzXSi2npeIXMI0HXnvtNQwYMAABAQFQKBTo0qULHn74YfzlL3+R1ha/XXOMgTmGaJ9aMn5r+t3vfie971lbP/92qampmDt3LqKiouDp6Yng4GCMGjWqUWOAqqoq3HXXXdLrz5w50/4LoDbB0fFbXFyMb7/9Fq+//joeeeQRhIWFSXGzbt26ButfvXoVf/3rXzFu3Dh06dIFHh4eUCqViImJwezZs5GYmFhn3VYdPwgiK55//nkBQDo8PT2Ft7e3xXNBQUHi2LFjdredmZkpQkJC6j18fX2l1/n4449rtVFYWCh+9atfWfTH29tbuLq6St97eHiIzZs319kPo9EoXnnlFeHi4iLVUSqVwsvLS/q+T58+dl8ftT5Hxq8QQixbtkwAEG5ubvXGcXp6er31rR0HDhywqQ+rV6+2iHdfX18hk8mk75ctW9aoa6PW5+j335pxAkB4eXkJhUJh8dysWbOEwWCw2kavXr1qvfd6enpaPNe/f3+Rm5trtb5SqbQo6+vrK9zd3S2eGzlypNBqtXZfH7UNNd+bzDF8+7/76NGjhU6na1T7BoNBzJgxQ2pLJpMJf39/i9edNWuWMBqNVuub63p6etb7Hm7td2DTpk0NjmFq/j5duHChUddIrcfR8Wu2adMm4ePjI7Xp7u5uMf4FIIqKimrVa44xMMcQ7VdLxW9NBw4csIifLl261Ft++/btFp+3fHx8LD6PPf3003W+f1tz+7h6xowZTbsgajWOjt+1a9fW+Rls7dq19dY9cuRIrTre3t4WY1gXFxfx2muvWa3fmuMHJv3IqvXr14v33ntPHD9+3GLAUVpaKtatWyc6dOggAIjg4GBRXFzc7K//f//3fwKAUCgUVgc8Tz31lPQL8cYbb4iCggIhhOmDwMGDB6UPpQqFQmRlZVl9jfnz50uJm9dee01kZGRI5woKCsTWrVvFn/70p2a/NnI8R8eveXAxdOjQRvXvjTfeEJ07dxbjx48XCQkJYvXq1XYl/Y4dOybkcrkAICZMmCCuX78uhDDF7dy5c6W2vvzyy0b1j1qXI+M3PT1dABDDhw8X69evF9nZ2UIIIaqrq8WFCxfE+PHjpfj54x//aLWNZcuWiVWrVokLFy4IvV4vPZ+dnS0SEhKkgfuoUaOs1l+wYIFYv369SElJEeXl5UII0x9hUlNTpfdlAGLu3Ll2XRu1HQDEPffcIz755BORmpoqPZ+eni5mz54t/RtPnz69Ue0vXbpUamPBggUiPz9fCCGEVqsV77//vnBzcxMAxPLly63WNyf9HPXBsHfv3gKAGDRokEPaJ8dydPwKIcTmzZul98rJkyeL06dPS+dKS0vF4cOHxcKFC63+8aOpY2COIdq3lojfmnQ6nejWrZtwc3MTAwcObDDpl5aWJiVxBg8eLC5fviyEMMX966+/LvXvnXfesen1k5KShJubm+jatasICQlh0s/JOTp+165dK0JDQ8Xo0aPF0qVLxZYtW2xO+h04cEDI5XIxYcIE8dVXX1m89/7vf/8TQ4YMkdr617/+1aj+OWr8wKQfNcru3buloP7Pf/7TrG2XlZUJf3//On+hy8vLhYeHR71v6levXpX69+mnn9Y6v3PnTun8N99806z9p7avqfHb1KTf7bNHzIkYW5N+5v9U4uPjRWVlZa3zo0aNkgZddc3WIufVlPgtLi4WiYmJdZ43Go3i4YcfFgCESqUSZWVldvdv8eLFUv/MHybt8cQTT0gfWK3FN7V9P/zwQ73nayYWMjMz7Wq7oKBAmlk6YcIEq2XM79FeXl4iLy+v1nlHJv1OnDjR5EE/tS5Hxq8QQty4cUMa5y5cuNCuus0xBuYYon1zdPze7sUXXxQAxNKlS6X31vqSftOnTxcARGhoqNWJHc8++6w0+6+wsLDe1zYYDFKicc+ePaJLly5M+jk5R8dvVVVVredsTfpdv35dXLlypc7zFRUV4q677hIARLdu3ezumyPHD1zTjxpl0KBB0uOsrKxmbfvrr79GUVERAOCZZ56pdb6oqAgVFRUAgIEDB1pto1u3bggICAAAaLXaWucTEhIAAJMmTcL48eObpd/kPBwZv7aQy+WNrpuWloYjR44AAF5++WW4ubnVKrN48WIAQEZGBn788cdGvxa1TU2JX19fX/Tv37/O8zKZDLNmzQJgeu9MTk5uUv+ys7MbXb+srKxJaxdS6xk2bFi952fPni09PnnypF1t79u3D+Xl5QCAV155xWqZl19+GS4uLtDr9di8ebNd7TfVmjVrAAAqlQqTJ09u0dem5uHI+AWADz74AEVFRejUqRP+8pe/2FW3qWNgjiHaP0fHb00nTpzABx98gJiYGPzxj39ssLxOp5PW7Hvuuefg5+dXq4w5/kpKSvDNN9/U297KlStx8uRJPPXUUxgxYoTd/ae2x9Hx6+rqancds06dOiE6OrrO8+7u7pg+fToA05qV5nyGrRw5fmDSjxrl8OHD0uNu3bo1a9vmgI+OjsbQoUNrnQ8JCYFSqQRQ9y97amqq9GHx9kFRSkoKTpw4AcDyjYPuHI6MX0fbu3ev9Pjhhx+2WmbIkCHw9vYGAOzZs6dF+kUtx9Hx6+npKT2urq62u37N/nXt2rXR9VUqFYKDg+2uT21fU2IsIyNDehwXF2e1jEqlQqdOnQAAu3btakQPG0en02HTpk0AgClTpkClUrXYa1PLaep75IYNGwAA06dPh7u7u111mzoG5hiCmhq/ZhUVFZg1axaEEPjnP/9p0W5djhw5grKyMgDA6NGjrZaJjIxEz549AdQff1euXMGyZcsQFBSEv/71r424AnJGzRW/jtLY/jl6/MCkH9msoqIC165dw0cffYQnn3wSANC9e3eMGzeu2V4jLS0NBw4cAFB3Qk4mk2Hu3LkAgPXr1yMhIQFqtRqA6Zfr0KFD0uy9xx9/vFbi0PwXThcXFwwZMgRff/01hg0bBj8/P3h5eSE2NhYLFixAZmZms10XtT5HxO+FCxfQu3dvKBQKqFQq9OjRA3PmzMHp06ebq9u1nD9/HgAQHBxcZ0JELpcjNjZW6iM5v5Z4/zUz7yDt7u6OmJgYm+potVqcP38eixYtwsqVKwEATz31FDp06GBTfY1Gg5MnT2LWrFn473//CwB46aWXIJPJ7L8AavNq7lIeHx/f6HbqG1CbzyUlJdVZZv/+/YiJiYGnpyd8fHwQHx+PF198ESkpKY3qz+bNm1FaWgrA+p0K1D40JX7T09Nx48YNAMDQoUNx+vRpTJ48GaGhofDw8EDnzp0xZcoUHD9+3Gr9po6BOYag5nr//dOf/oTk5GTMnj0bDzzwgE11zPEHAL169aqzXO/evQHUHX9CCMyePRvl5eV4//33ERgYaHvHyak1V/w6irl/YWFhdsWlw8cPzXqzMLVL5rVDbj8GDx5ssflFczAvzu3q6ipycnLqLFdWVmaxkDFurf1g3vGna9eu4p133rG6Fsmrr74qAIjw8HBpwxBz/Zo75nh7e4vdu3c36/VRy3NE/NbcJczFxUUEBARY7DYlk8nE0qVLbW7PnjX9fvOb3wgAol+/fvWWmzBhggAgBgwYYHM/qO1pyfdfIUwLbJt31HvyySfrLXv8+HGrfZPL5WLWrFkWm3xY88UXX1it7+HhIV599VWuJdVOFRUVibCwMAFA3HfffXbX//LLL6VYOXjwoNUyhYWF0k6Srq6utc7X3PlXLpcLf39/aWMDwLSL6ieffGJ33wYPHiwAiN69e9tdl5xDU+N3165dUpwlJCRIm854enpa7Nwrk8nEW2+9ZbWNpoyBOYa4szU1fs1OnTolXF1dRUhIiMW6ew2t6ffSSy8JAMLf37/e9s3rBAYGBlo9/8EHHwig9oZhXNOvfWuu+L2d+X20oTX9GnLs2DFpg6a6dvCti6PHD5zpRw0KDQ21uJ0AMN1v//777yMiIqLZXqe6uhrr1q0DAIwdOxahoaF1lvX09MS//vUvvPfee9J6JCUlJTAYDAAAvV6PwsJCad2Tmsz31+fm5uKjjz7C/fffj6SkJGg0Gmi1Wuzbtw+RkZEoLS3FpEmTOOPPyTkifqOjo/Huu+/i8uXLKC8vh1qthk6nw+7duzFgwAAIIbB8+XJpxlNzMv8VyMvLq95y5vPm8uScWur9FzCtoTdp0iTo9XoEBgbi7bffrre8u7s7QkJCEBISYrEu1Ny5c7Fs2TIoFIp66ysUCqm+eZ1LuVyORYsW4fe//32T1r6ktsloNOLJJ59ETk4OPDw88OGHH9rdxvDhw6XbZ5YvX261zFtvvQUhBADAYDBIt5OZ9e/fHx999BGuXbuGiooKFBYWoqSkBFu2bEG3bt1QWVmJefPmSbNObXHp0iUcPXoUAJcOaa+aI35rrvGUkJCAkJAQ7Nq1CzqdDsXFxUhOTsbw4cMhhMCSJUusrmnWlDEwxxB3ruaIX8D0njpr1iwYDAZ88MEH8Pf3t7luc8TftWvXsHjxYnh5eeHTTz+1o+fkzJorfh0lPz8fTzzxBIxGI6Kjo7Fo0SKb67bI+MEhqURqcWvXrrU6Y8LWY+fOnTa9Tl5enlixYoXw9/cXMpnM7ix2fbZt2yb15/vvv6+3bFpamoiPjxcAxJQpU8TJkydFaWmpyMzMFOvWrZP+CjBgwABRWlpqUXfOnDnS6wQHBwuNRlOr/cTERGmWwIIFC5rtGsm69hC/ZmVlZeLuu+8WgGn30+Li4gbr2DPTb8SIEdJMr/pMnTpVABAxMTH2dJ8aoT3Eb1VVlTSzw83Nze5ZztXV1SIlJUXMmzdPuLi4CJVKJb799lu7Xv/cuXPSzr0hISHi2LFj9l4GNVJLxXDN2fVr1qxpdH/NM/YBiGnTpomLFy+KyspKkZmZKZYuXSpkMpk0gwqAKC8vt7ntgoICERkZKc1WMRqNNtV7+eWXpZmqBQUFjb00agRnit+NGzdavPbx48drldFqtSI8PFwAEH369Kl1viljYI4h2h5nil8hhHjzzTcFAPHII4/UOtfQTD/zZ7COHTvW+xpLliwRgGnW9e0eeughAUCsWLGi1jnO9Gt5zha/1pjbbexMv9LSUjFo0CABmO4UPHPmjF31W2L8wKRfO9FSv3BmP/30kzR9taEEna3MHzg7duxY721dBoNBGuw89dRTVstcvHhRui3uj3/8o8U589Rya+dqMv+nEhsb27gLIpu1h/itae/evVLftmzZ0mB53t7r3Jw9fg0Gg5g8ebIATLdCfvXVV01qb+XKlQIwJb1v3Lhhd/358+cLAKJz584N3iJMzaMlYvj3v/+9VP5vf/tbk/pbVVUlpk+fXmd/YmJixMKFCwUAoVAo7G5/9erVUluJiYkNlq+srBTBwcECgJg8eXJjLomawJni97vvvpPaGTJkSJ3l/vznP0vlcnNzpeebOgbmGKLtcab4vXDhgnB3dxcqlUpkZmbWOu/o23vN7839+/e3+lmRSb+W50zxWxdz241J+mm1WnH//fdL497Dhw/bVb+lxg9M+rUT5eXlIj8/v9FHZWWl3a9pDvBx48Y1uf95eXnSX+UbWgttx44d0i/nuXPn6ixnHtj07NnT4nnzB1IAYuPGjXXWN3/wbMwHBrKPs8fv7bRarRRj7733XoPl7Un6mf/SFRwcXG8582xDR1wfWXLm+DUYDGLKlCkCMK1ttmnTpia1J4Rptqv5A+fKlSvtrp+Wlib9PtiSNKemc3QMv/LKK3a9J9pq9+7dYurUqSIuLk5ERESIQYMGibfeekvodDrx7LPPCsD6TKmGnD9/XuqvLUnwLVu2SOX37t3biCuhpnCm+E1MTJTamjNnTp3lasbUTz/9JD3f1DEwxxBtjzPF7wMPPCAAiLfffluUlpbWOqZNmyYAiIiICOm5mv1bsWKF1BedTlfn60yaNEkAEPHx8dJzxcXFwtfXV7i4uIgff/zR6utHREQIwDQD3PxcdXV1k66Z6udM8VuXxib9tFqtGDp0qAAglEqlOHTokN2v3VLjB1dQu+Dh4QEPD48Wfc2OHTsCAK5evdrkttavX4+qqirIZDLMmjWr3rIXL16UHnfr1q3OctHR0QBMO6XVdNddd0mP69sZUtxaD4i7Rzqes8dvSzLvaHbz5k3k5+db3R21uroaly5dAlD/7mjUPJw1fqurqzFt2jR8+eWXkMvl+M9//oPJkyc3uW+enp4ICAhATk5Oo/pnvjbA+X4/nZUjY/iVV17BihUrAADvvvsuXn755WZre+TIkRg5cqTVcz/++CMAYPDgwc32enVZs2YNACAyMhLDhw93+OuRJWeK37i4OMjlclRXV9s0BgUsx6FNHQNzDNH2OFP8muNp8eLFWLx4cZ3lMjMz4e3tDQD429/+hhdffBHAL/EHmHbmvfvuu63WN+/yWzP+ioqKoNFoAAD3339/vf3cuHEjNm7cCAA4ffo0+vbtW295ajxnit/mpNPpMHbsWBw6dAheXl7Yvn17g3FpTUuNH7iRBzVaWloaAEhv6k1hDvhhw4aha9eu9ZZ1cfklbDMyMuosl5eXZ7V/gwcPlhbFrzl4ul1ycjIAICoqqt7+kHNqzvi93YkTJ6THzR0/I0aMkB7v2rXLapmjR49Kix/X9YGYnFtT49dawm/KlCnN0rfS0lLk5+c3un/ma2tsfWo7Xn75ZYsB+yuvvNIir3v06FEpaTFjxgy769vzHp6dnY3du3cDAGbNmsU/FLYjjohfT09P6YOhLWNQmUyGyMhI6fmmjoE5hrhztNb7b32GDBkibfJVV/xlZGRI8c/4u3O1xfg10+l0GDNmDA4dOgSlUokdO3Zg6NChdrfTouMHh80hJKdlMBgaXLh637590kYXixYtatLrHT58WJrW+vnnnzdY/uDBg1L5+fPnWy2Tk5MjfH19BQDx6KOP1jo/a9YsAUB06NChwY08Xn31VfsvilqNo+O3obbLy8vFr371K2mqd1FRUYNt2nN7rxBCDBkyRLptzdq0+NGjR0trqtS3Pia1PS3x/mswGMRvf/tbAZjW8LPnlt6qqqoGy7z22mtSPO/YscPu+k899ZRU/8KFCzb3jdqWmmvwWFtw3VFKSkpEnz59BAAxcuTIWucb+v1Sq9Wia9euAoDo1KlTg7eGmRe1l8vl4vr1603qO7UdjozfDRs2SG1b27BIp9NJG3kMGjTI4lxzjIE5hmj/Wuv9t6E1/YQQ0nqsYWFhVje7e+655wRg2hChsLDQrtfnmn7tQ0vHr/m1bLm9t+Yafo29pdesJccPTPpRLenp6aJPnz7i008/FampqRYD5MzMTPH2228LpVIpAIiAgACRk5NTq41ly5ZJv0Dp6en1vp75P4iAgACbdtirrq6WBvQymUwsXLhQZGdnCyFMa0nt3LlTREdHS+cPHjxYq42srCxpQDR06FBx/vx5IYTpw8D+/fulnfuCg4PFzZs3G+wTtR2Ojt+DBw+K4cOHi3//+98Wb9CVlZVi37590jo4AMQ777xjtY/V1dUW61mcOnVKqvPNN99YnLP2O3Hs2DEhl8sFAPGb3/xGZGVlCSFMH1bNgyUA4ssvv2zMj5BakaPj12AwSDvkurq6is2bN9vVv3Xr1olx48aJLVu2iLy8POn56upqcfbsWYvd0QcPHlwrwfLmm2+KadOmiR07dlgkxKuqqsSJEyfExIkTpfpTp061q2/UdixatEj6d/zrX/9qd/2GxhAnTpwQy5cvFxcuXJCSFuXl5WLbtm2id+/eAjDtAG1tofkNGzaIiRMniv/+978WMazX68XWrVul8QOABhPiRqNRREVFCQBizJgxdl8ntU2Ojt/q6mpxzz33CMC0YdGuXbuk5HJycrIYPny4ACBcXFzE/v37a9Vt6hiYY4j2zdHxWx9bkn5paWnSOOa+++4TV65cEUKYkikJCQnSHzXrGkPXh0k/59cS8Xv7uoLm8h9++KHF87evO6nT6aR1LVUqlfjxxx8bc4lCiJYfPzDpR7XUnHUEmLZLDwoKkt6gzUdUVJQ4deqU1TZs/Q+jpKREeHl5CQDihRdesLmPV69elf4Sbz5UKpW0o6U5a/73v/+9zjZ+/PFH4efnJ5X39fWV+mJO+NVcPJmcg6Pj98CBAxbtKBQKERQUJG1EYx6oL1myxOY+1nfU9Ven1atXC1dXV6mcn5+fNFACIJYtW9bInyC1JkfH76FDh6Rzbm5uIiQkpN7j9qTH7bu0KZVKERQUJNzd3S2ef/DBB4Vara63b+b37dt/fwDTDmZlZWXN9nOllpORkWHxXthQjFlbmLuhMcTWrVstXsPf319KYgAQPXr0EJcvX7baP2sxHBgYaFHfw8NDfPzxxw1e6759+6Q6X3/9td0/K2p7WiJ+hTDNxouLi7MYS5j/GG1+f161apXVus0xBuYYon1qqfitiy1JPyGE2L59u8VnLl9fX4v34JkzZzY4K9saJv2cW0vFr62fwW5/H1y/fr10ztPTs8H+HT16tM5rbenxAzfyoFrCw8OxefNmHDx4ED/99BNycnJQUFAAuVyOiIgI9OnTB+PHj8fUqVOldRka64svvoBerwcAPPPMMzbX69atG86dO4fVq1fj22+/xfnz51FcXAxPT09ERERg6NChmDdvnsWmHbe77777cPHiRaxYsQLbt2/H9evXAQDx8fEYN24cXnzxRasLHFPb5uj4jY+Px4oVK3D8+HEkJSWhoKAAxcXF8PLyQlxcHO677z48++yziI+Pd8DV/eKZZ55B//79sXLlShw6dAj5+fkIDg7Gvffei/nz5+PBBx906OuTYzg6fo1Go/S4qqpKWvepLmVlZRbfjx07FqtWrcLBgwdx9uxZ5OXloaioCAqFAl27dsXdd9+NKVOmYMyYMVbbmzVrFgIDA3Hw4EFcvHgRN2/eRFFREVQqFSIiInDvvffiySefxJAhQ+y+NmobasaY0WhsMMa0Wq3drzFgwAAsWrQIP/74I9LT01FYWIjAwED07t0bjz/+OGbPng13d3erdYcNG4bly5fj+PHjSE5OhlqthkajgY+PD7p3744HH3wQc+fOtWk9VvN6xCEhIRg3bpzd10FtT0vELwCEhobi1KlT+Oijj/Dll1/iypUrKCsrQ2RkJB588EEsXLjQYtODmppjDMwxRPvUUvHbVGPGjMG5c+fwzjvvYO/evbhx4wb8/PzQv39/zJ07F4899lir9ItaV1uP35r9Ky8vR3l5eb3lKysr6zzX0uMHmRA1tociIiIiIiIiIiIip8fde4mIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIqNHCw8Mhk8nwwgsvtHZXiIiIiKgGJv2IiIiIqFHy8vKQk5MDAOjfv38r94aIiIiIamLSj4iIiIgaJTExUXrMpB8RERFR28KkHxERERE1yqlTpwAAnp6eiIuLa+XeEBEREVFNTPoRERERUaOYk37x8fFwdXW1q+6FCxewYMECxMXFwdvbGyqVCvfccw8+/vhjVFdXN1h/7969mDhxIoKDg6FQKBAfH4+PPvoIQgj87W9/g0wm4+xDIiIiuqPZNzojIiIiIrrFfHuvPck1IQTefPNNvPnmmzAYDAAAHx8flJaW4ueff8bPP/+M77//Ht9//z3c3Nxq1TcYDJg3bx5Wr14NAJDJZPDx8cH58+cxf/58nDt3DjKZDADQr1+/pl4iERERkdPiTD8iIiIisptarUZmZiYAYMCAATbXe+WVV7Bs2TLIZDIkJCQgLy8PGo0GWq0WH374Idzc3LB79278+c9/tlr/D3/4A1avXg1XV1e88cYbKCwsRHFxMXJzc/HEE09g9erV+OabbwAw6UdERER3NpkQQrR2J4iIiIjIuezduxcjR44EAJw8edKmxN/nn3+OadOmQS6XY9u2bXj44YdrlXnhhRfw4YcfIjg4GLm5udKsPQDYs2cPRo0aBZlMhu3bt2P06NEWdauqqtCzZ0+kpqYCAI4ePYpf//rXTblMIiIiIqfFmX5EREREZDfzen5ubm6Ij49vsLzBYMCiRYsAmBJ71hJ+AKTnb968iZycHItzS5YsAQDMmzevVsLP3BdzItLFxQV9+vSx8WqIiIiI2h8m/YiIiIjIbub1/Hr16gV3d/cGy2/fvh3Z2dmQy+VYsGBBneXCwsKkx1VVVdLjY8eOITExEXK5HH/4wx8arB8TEwOlUmlxLjk5GTKZDPPnz2+wv0RERETOjkk/IiIiIrKbeaafrZt47N27FwBw//33o0uXLnWW02g00uOgoCDp8bZt2wAAAwcOROfOnRusb209vzNnztR5joiIiKi9YdKPiIiIiOyi0WiQlpYGwPakX1JSEgA0eMvtuXPnANSeqXf69GkApqRffc6fP19nv8xt9O3b16Y+ExERETkzJv2IiIiIyC6nT5+GeS84W5N+RUVFAAAfH596y3333XcAgBEjRlg8n5ubCwAICAios65Go8Hhw4cB1D3Tz83NDb169bKpz0RERETOjEk/IiIiIrKL+dZeuVxu82YZKpUKAGptzlHT8ePH8cMPPwAAZs2aZXHOxcU0bM3Ly6uz/t///nfo9XoAdSf9evbsCQ8PD5v6TEREROTMmPQjIiIiIruYN/GIjY2Fl5eXTXXMMwL37dtnsUGHWW5uLp588kkIITB16tRaMwijo6MBmNYGtFb/yJEjeOuttwAAXbp0qTUjMCsrC/n5+VzPj4iIiO4YTPoRERERkV3MM/3i4+Oh1WrrPQwGAwDgmWeegYuLC9LT0zFz5kxpxl9FRQU2b96Me+65B6mpqejfvz8+/fTTWq/52GOPAQDS09MxY8YM6Xbf0tJSfPDBB3j44YdhNBoBWL/l2LyJB9fzIyIiojsFk35EREREZDOdTocrV64AADZt2gRvb+96D/Ouu3379sXbb78NAPj8888RHh4OX19fKJVKTJ48GdevX8eoUaOwa9cueHt713rdxx9/HGPGjAEAfPHFFwgLC4Ovry98fX2xYMECjBs3DqNGjQIADBo0qFZ98yYedc30q6iowDPPPIOoqCh4e3sjLi4O//73v5v40yIiIiJqPUz6EREREZHNzpw5I82os0XNmXWLFi3Crl27MGrUKPj7+6O8vBwdO3bEhAkTsGXLFuzatQsdOnSw2o5MJsPXX3+N119/HV27doWbmxsUCgUeeeQRbNu2DZ999hkOHToEAHjwwQet9vv2/tRkMBgQHh6O/fv3Q6PR4J///Ceef/55HDt2zOZrJSIiImpLZMK89RoRERERkZP67LPPMHv2bMTGxiI5ObnW+a5duwIA0tLSbG5zzJgxeOihh/DSSy81Wz+JiIiIWgpn+hERERGRU0tKSsKCBQsAAEuXLq11XqPRID093a5NPPR6PRITE9GrV69m6ycRERFRS3Jt7Q4QERERETVkxowZGDt2LIYPH47AwEAAph1/N23ahISEBGi1WowfPx7Tp0+vVdd8a69arcZf/vKXWufj4uLw6KOPSt8LITBz5kwMHDgQI0eOdMwFERERETkYb+8lIiIiojZNq9XCx8cH5mGrl5cX3NzcoNFopDJTp07Fv/71LygUilr133//fSxcuLDO9l9//XUkJCQAMCX8fve73+H8+fPYvXs3VCpVM18NERERUctg0o+IiIiI2jStVouPP/4Yu3fvxtWrV5Gfnw+ZTIbw8HAMHjwYs2bNwtChQ5v8OkIIPP/88/j555+xf/9++Pj4NEPviYiIiFoHk35ERERERACef/55HD9+HPv374e/v39rd4eIiIioSZj0IyIiIqI7XkZGBiIjI+Hh4QFX11+WvV6yZAmWLFnSij0jIiIiahwm/YiIiIiIiIiIiNoZl9buABERERERERERETUvJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2hkm/YiIiIiIiIiIiNoZJv2IiIiIiIiIiIjaGSb9iIiIiIiIiIiI2pn/B20wS8clOBc6AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "df = pd.read_csv('./l2.csv')\n",
    "\n",
    "fig = plt.figure(figsize=(15, 5))  # Set the figure size\n",
    "plt.rcParams['font.size'] = 18  # Default font size\n",
    "data = np.log10(df['l2'].values)\n",
    "sns.histplot(\n",
    "data,\n",
    "bins=50,  # Number of bins\n",
    "kde=True,  # Add KDE (Kernel Density Estimate)\n",
    "stat='probability',  # Normalize the histogram\n",
    "color='navy',  # Color of the bars\n",
    "edgecolor='black'  # Color of the edges\n",
    ")\n",
    "print(df['l2'].mean())\n",
    "\n",
    "# Customization\n",
    "plt.title(r'$\\mathcal{P}_\\boldsymbol{\\mu}$')  # Title of the plot\n",
    "plt.xlabel('$Log_{L_2}$')  # X-axis label\n",
    "plt.xticks(np.linspace(data.min(), data.max(), 7))\n",
    "plt.ylabel('Probability')  # Y-axis label\n",
    "plt.grid(True)  # Show grid lines\n",
    "plt.show()\n",
    "fig.savefig(f'test_all.png')\n",
    "plt.close()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
